03. 代码
代码审核
运行 ROS 并连接到模拟器后,打开项目notebook。你可以在
~/catkin_ws/
目录下运行以下命令:
jupyter notebook src/RL-Quadcopter/quad_controller_rl/notebooks/RL-Quadcopter.ipynb
按照 notebook 中的说明完成此项目。如果需要其他帮助,请在以下部分查找实用提示和代码段。
任务
整个项目分为以下几个任务。对于每个任务,你都需要训练强化学习智能体成功地完成该任务。
- 任务 1:起飞
- 任务 2:悬停
- 任务 3:着陆
- 任务 4:整套动作
每个任务需要一个相关的 Python (.py) 文件来定义该任务,以及如何运行该任务。这些任务文件应该位于以下子目录下:
RL-Quadcopter/quad_controller_rl/src/quad_controller_rl/tasks/
注意,第一个任务(“起飞”)已包含在项目中,定义为
takeoff.py
。你需要定义其他几个任务(项目的任务)!你所定义的任何任务必须衍生自
base_task.py
中定义的基类
BaseTask
。可以将每个任务看作与 OpenAI Gym 环境相似。
智能体
你的强化学习智能体必须在位于以下位置的 Python (.py) 文件中定义:
RL-Quadcopter/quad_controller_rl/src/quad_controller_rl/agents/
它们都必须继承在
base_agent.py
中定义的基类
BaseAgent
。其中提供了一个示例智能体,它会执行随机策略搜索,但是性能非常糟糕!你可以用它作为模板并定义你自己的智能体,然后在其中实现更强大的学习算法。
注意,你可以针对所有任务选择使用相同的智能体/算法,或者为每个任务定义一个新的智能体。